home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hyper Stacks 1994 May
/
Hyper Stacks (Pacific HiTech)(1994)[Mac].iso
/
Sounds & Music
/
HyperSounds
/
HyperSnd.p
< prev
next >
Wrap
Text File
|
1988-01-09
|
2KB
|
107 lines
{$R-}
{$S HyperSound } { Segment name must be the same as the command name. }
UNIT DummyUnit;
INTERFACE
USES MemTypes, QuickDraw, OSIntf, toolIntf, hyperxcmd;
PROCEDURE ENTRYPOINT(paramPtr: XCmdPtr);
IMPLEMENTATION
TYPE Str31 = String[31];
PROCEDURE HyperSnd(paramPtr: XCmdPtr); FORWARD;
PROCEDURE ENTRYPOINT(paramPtr: XCmdPtr);
BEGIN
HyperSnd(paramPtr);
END;
PROCEDURE HyperSnd(paramPtr: XCmdPtr);
TYPE
T1 = RECORD
Typ: Integer;
Sz: Integer;
F: ARRAY [1..100] OF RECORD
Typ: Integer;
Modi: LongInt;
END;
END;
T2 = RECORD
Sz: Integer;
F: ARRAY [1..100] OF RECORD
Cmd: Integer;
Mod1: Integer;
Mod2: LongInt;
END;
END;
P1 = ^T1;
P2 = ^T2;
H1 = ^P1;
VAR Res: H1;
Ps: P2;
i,j: Integer;
ch: boolean;
iff: longint;
uff: integer;
BEGIN
i := 0;
while true do begin
ch := false;
uff := 0;
i := i+1;
handle(res) := get1indresource ('snd ', i);
if res = nil then exit(hypersnd);
if (res^^.typ = 1) OR (res^^.typ = 2) then begin
IF Res^^.Typ = 1 then begin
res^^.Typ := 2;
uff := uff - 6*res^^.sz;
iff := munger (handle(res), 4, nil, 6*res^^.sz, @iff, 0);
res^^.Sz := 0;
ch := true;
end;
hLock(handle(res));
ptr(Ps) := ptr(ord4(res^)+4+6*res^^.sz);
if (ps^.sz = 1) and (ps^.f[1].cmd = $8051) then begin
ps^.f[1].cmd := $8050;
ch := true;
end
else if (ps^.sz = 2) & (ps^.f[2].cmd = 40) &
((ps^.f[1].cmd = $8050) | (ps^.f[1].cmd = $8050)) then begin
hUnlock(handle(res));
iff := munger (handle(res), 6+6*res^^.sz+8, nil, 8, @iff, 0);
hLock(handle(res));
ptr(Ps) := ptr(ord4(res^)+4+6*res^^.sz);
uff := uff-8;
ps^.sz := ps^.sz-1;
ch := true;
end;
for j := 1 to ps^.sz do
if ps^.f[j].cmd < 0 then begin
ch := true;
ps^.f[j].Mod2 := ps^.f[j].Mod2 + uff;
end;
hUnlock(handle(res));
if ch then begin
changedresource(handle(res));
writeresource(handle(res));
end;
end;
end;
END;
END.
(* compile and link:
pascal HyperSnd.p -i "{XCMDs}"
link -o 80:HyperSound -rt XCMD=0 -sn Main=HyperSound -m ENTRYPOINT HyperSnd.p.o {libraries}interface.o
*)